package com.suning.sawp.intf.airCondition;

import java.util.List;

import com.suning.sawp.dto.aircondition.AirConditionRequest;
import com.suning.sawp.dto.aircondition.MyCustRequest;
import com.suning.sawp.dto.aircondition.MyCustResult;
import com.suning.sawp.dto.aircondition.SchemeInfo;
import com.suning.sawp.dto.aircondition.SchemeResult;
import com.suning.sawp.dto.aircondition.SchemeTempletHouse;
import com.suning.sawp.dto.aircondition.SchemeTempletInfo;
import com.suning.sawp.dto.common.ReturnMsg;

/**
 * ' 中央空调
 *
 * @author 15050769
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface AirConditionService {

    /**
     * 查询已销未提订单列表信息
     *
     * @param index
     * @param size
     * @param cateCode
     * @param storeCode
     * @param staffId
     * @param accessStatus
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<SchemeResult>> querySchemeForCust(int index, int size, String storeCode, String mobileNum);

    /**
     * 根据方案ID查询方案详情
     *
     * @param schemeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<SchemeInfo> querySchemeInfo(String schemeCode);

    /**
     *
     * 查询对应分公司的户型列表信息
     *
     * @param branchCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<SchemeTempletHouse>> querySchemeTemplet(String branchCode,String resouce);

    /**
     * 根据模板ID查询模板详情
     *
     * @param templetId
     * @param houseType
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<SchemeTempletInfo> queryTempletById(String templetId, String houseType);

    /**
     * 查询客户接待记录
     *
     * @param staffId
     * @param myCustRequest
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<MyCustResult>> queryMyCust(String staffId, MyCustRequest myCustRequest);

    /**
     * 软删除本员工对应的客户接待记录
     *
     * @param staffId
     * @param schemeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> deleteRecord(String staffId, String schemeCode);

    /**
     * 
     * 提交
     *
     * @param staffId
     * @param airConditionRequest
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> submitCustMade(AirConditionRequest airConditionRequest);

    /**
     * 
     * 检查价格是否超过现价
     *
     * @param commCode
     * @param custNum
     * @param price
     * @param straffId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> isOverLimit(String commCode, String custNum, String price, String storeCode,String staffId);

    /**
     * 
     * 新增客户方案
     *
     * @param schemeInfo
     * @param storeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> submitScheme(SchemeInfo schemeInfo, String storeCode);

    /**
     * 
     * 发送短信
     *
     * @param staffoMobile
     * @param storeName
     * @param staffName
     * @param orderTime
     * @param type 0:预约短信，1：方案确认短信
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> sendSms(String custNum, String staffMobile, String storeName, String staffName, String orderTime, String type);

    /**
     * 
     * 更新方案
     *
     * @param schemeInfo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> updateScheme(SchemeInfo schemeInfo);

    /**
     * 后台保存方案
     *
     * @param schemeTempletInfo
     * @param branchCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> submitSchemeTemplet(SchemeTempletInfo schemeTempletInfo, String branchCode);

    ReturnMsg<String> updateSchemeTemplet(SchemeTempletInfo schemeTempletInfo, String branchCode);

}
